package br.usp.ime.lab.math;


import org.junit.Before;
import org.junit.Test;
import org.junit.Assert;
import br.usp.ime.lab.math.DevolveMaior;

public class DevolveMaiorTest  {

	/**
	 * Classe usada para validar a classe DevolveMaior.
	 */
	
	private DevolveMaior devolveMaior;

	@Before
	public void setUp() {
		devolveMaior = new DevolveMaior();
	}

	@Test
	public void testAmbosNulos() {
		Assert.assertEquals(new Double(0), devolveMaior.devolveMaior(null, null));
	}

	@Test
	public void testComANulo() throws Exception {
		Double esperado = Math.random();
		Assert.assertEquals(esperado, devolveMaior.devolveMaior(null, esperado));
	}

	@Test
	public void testComBNulo() throws Exception {
		Double esperado = Math.random();
		Assert.assertEquals(esperado, devolveMaior.devolveMaior(esperado, null));
	}

	@Test
	public void testAMaiorQueB() throws Exception {
		Double b = Math.random();
		Double a = b + 1;
		Assert.assertEquals(a, devolveMaior.devolveMaior(a, b));
	}

	@Test
	public void testBMaiorQueA() throws Exception {
		Double a = Math.random();
		Double b = a + 1;
		Assert.assertEquals(b, devolveMaior.devolveMaior(a, b));
	}

	@Test
	public void testBIgualA() throws Exception {
		Double a = Math.random();
		Double b = a;
		Assert.assertEquals(a, devolveMaior.devolveMaior(a, b));
		Assert.assertEquals(b, devolveMaior.devolveMaior(a, b));
	}
}